<?php

class Pages implements Iterator {
	
	
	
	//массив данных о загруженных страницах
	private $pages = array();
	
	
	
	/**
	 * Конструктор массива, позволяющий сразу загрузить нужные страницы
	 * 
	 * @param array $urls Массив URL на страницы, которые требуется загрузить
	 * @param array $params Массив дополнительных параметров для CURL, результатов и т.д. и т.п.
	 */
	function __construct($urls = array(), $params = array()) {
		$this->getPages($urls);
	}
	
	
	
	/**
	 * Загружает с адресов или из кэша страницы с указанными адресами.
	 * 
	 * @param array $urls Массив URL на страницы, которые требуется загрузить
	 */
	
	public function getPages($urls) {
		foreach($urls as $url) {
			//разбор URL в массив
			$url_array = parse_url($url);
			if(isset($url_array['query']) AND !empty($url_array['query'])) {
				$url_array['query'] = parse_str($url_array['query']);
			}
			
			//добавление элемента в общий массив
			$this->pages[] = array(
				'url' => $url_array
			);
		}
	}
	
	/**
	 * Функция создания CURL запроса
	 */
	public function curl() {
		echo 'You call "' . __CLASS__ . '" class.';
	}
	
	
	
	
	
	
	
	
	
	
	///////////////////////////////////////////////////////////////////////////////////
	// Функции реализующие итеративность содержимого экземпляра (объекта) этого класса,
	// т.е. возможность использовать в циклах типа foreach
	///////////////////////////////////////////////////////////////////////////////////
	
	public function rewind() {
		reset($this->pages);
	}
	
	public function current() {
		return current($this->pages);
	}
	
	public function key() {
		return key($this->pages);
	}
	
	public function next() {
		return next($this->pages);
	}
	
	public function valid() {
		$key = key($this->pages);
		$var = ($key !== NULL && $key !== FALSE);
		return $var;
	}
	
}
